package com.lovo.lesson;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Doudizhu {
    private List<Card> pukes = new ArrayList<>();
    // 初始化54张扑克牌
    public void init(){
        String [] points = "3,4,5,6,7,8,9,10,J,Q,K,A,2".split(",");
        String [] types = "♠,♥,♣,♦".split(",");
        for(int i = 0;i < points.length;i++){
            for(int j = 0;j < types.length;j++){
                pukes.add(new Card(points[i],types[j],i,j));
            }
        }
        pukes.add(new Card("大王","",14,0));
        pukes.add(new Card("小王","",13,0));


    }
    // 洗牌
    public void xipai(){
        Collections.shuffle(pukes);
        System.out.println(pukes);
    }
    // 发牌
    public void fapai(){
        List player1 = pukes.subList(0,17);
        List player2 = pukes.subList(17,34);
        List player3 = pukes.subList(34,51);
        List base = pukes.subList(51,54);

        sort(player1);
        sort(player2);
        sort(player3);
        sort(base);
        System.out.println("玩家一：" + player1);
        System.out.println("玩家二：" + player2);
        System.out.println("玩家三：" + player3);
        System.out.println("底牌：" + base);
    }
    public void sort(List list){
        list.sort(new Comparator<Card>() {
            @Override
            public int compare(Card o1, Card o2) {
                if(o1.getPointValue() == o2.getPointValue()){
                    return o1.getTypeValue() - o2.getTypeValue();
                }else{
                    return o1.getPointValue() - o2.getPointValue();
                }
            }
        });
    }

    public static void main(String[] args) {
        Doudizhu doudizhu = new Doudizhu();
        doudizhu.init();
        doudizhu.xipai();
        doudizhu.fapai();
    }
}
